import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
// 引入node的模块
import { fileURLToPath, URL } from 'node:url';

// 引入自动生成路由
import Pages from 'vite-plugin-pages';

// 引入自动引入插件
import AutoImport from 'unplugin-auto-import/vite';

// 引入scope-css插件
import { reactScopedCssPlugin } from 'rollup-plugin-react-scoped-css';

// 兼容nodejs require 方法
import commonjs from 'vite-plugin-commonjs'

// https://vite.dev/config/
export default defineConfig({
    plugins: [
        react(),
        Pages({
            dirs: 'src/views', // 需要生成路由的组件目录
            exclude: ['**/components/*.tsx'], // 排除在外的目录，即所有 components 目录下的 .tsx 文件都不会生成路由
        }),
        AutoImport({
            imports:[
                'react',
                'react-router-dom'
            ],
            dts: './src/auto-imports.d.ts',
        }),
        reactScopedCssPlugin(),
        commonjs()
    ],
    resolve: {
        alias: {
            //设置@符号 别名路径变量
            '@': fileURLToPath(new URL('./src', import.meta.url))
        }
    },
    server: {
        proxy: {
            //设置代理请求 当代理商识别你的请求如果前缀是 /api的话 就会自动转移
            '/hotel': {
                target: 'http://www.fast.com/hotel',
                changeOrigin: true, //跨域
                //替换掉api前缀 防止多个api地址
                rewrite: (path) => path.replace(/^\/hotel/, ''),
            },
        },
        hmr: {
            overlay: false,
        },
    },

});
